Hallo in die Runde! Ich möchte mal ein konzeptionelles Thema hier gerne mit Euch diskutieren und von Erfahrungen profitieren bzw. meine eigenen weitergeben. Mein primäres Ziel war es Assembler für den Atari 8-Bit zu lernen und dabei ein Spiel zu programmieren. Ich wollte ein anspruchsvolles Shooter Spiel machen und dabei sollte ein verticales Feinscrolling umgesetzt werden.
Als Konzept hatte ich mich (unwissend) für folgendes entschieden: 1. Graphics 0 mit aber 16 Farben. Auflösung 40x24. 2. Die Character (Auflösung 8x8) werden umdefiniert und damit baue ich die Landschaft. 3. Zwei Player nutze ich für das Raumschiff, 2 Missiles für die Schüsse, 2 weitere Missiles flansche ich noch für Blinklichter an das Raumschiff.
Welche Probleme habe ich bekommen? 1. Wenn ich die Character in Graphics 0 mehrfarbig mache und neu definiere, verliere ich alle Buchstaben. Außerdem habe ich nur eine relativ grobe Auflösung, die man für die Landschaft (wenn man es geschickt macht) noch relativ gut ertragen kann, aber spätestens für die Items in der Landschaft fehlt mir die feinere Abstufung. Und ich habe nicht genügend Player für die vielen Items! 2. Die ganze Player/Missile Programmierung kann echt ganz schön tricky sein. Eine Kollisionserkennung mit der Landschaft oder den Items ist ja echt toll, aber es ist echt nicht so einfach die genaue Lokalisation des getroffenen Items zu bekommen. Auch das ganze Timing der Player/Missiles muss man fast zwingend im Interrupt programmieren - spätestens bei so Dingen wie Detektion der Kollision (im Interrupt) und Erstellung der Explosion samt Sound (im Hauptprogramm) bekommt man ein massives Timingproblem (daran arbeite ich gerade). Warum Timingproblem? Weil der Assembler einfach zu schnell ist! Man stelle sich vor ein getroffenes Item soll mit Sound explodieren und in der animierten Explosionsphase scrollt der Bildschirm weiter ... wenn man die Explosionswolke in einer Phase programmiert, dann ist sie viel zu schnell weg - ich muss das vom Timing also in den Hauptcode so integrieren, daß die einzelnen Phasen mehrfach im Code ablaufen bis sie fertig sind.... Viele Probleme... wenn ich mir die ganzen alten Shooter anschaue mit den vielen Details und den vielen Items oder Schüssen und Aliengegnern usw. kann man nur mutmaßen, daß die so etwas komplett ohne Player/Missile programmiert haben müssen... und wahrscheinlich ist das auch so.
Ich werde dieses aktuelle Projekt aber so weiterführen und abschließen. Meine Gedanken drehen sich aber schon um folgende Ideen für "danach":
Hochauflösende Graphik mehrfarbig.
Dann entfällt die gesamte Systematik mit Grobscroll und Feinscroll - man braucht nur noch den Grobscroll, der ja dann automatisch fein ist.
Die Landschaft wird dann nicht durch Character erstellt, sondern man definiert im Speicher größere Landschaftsteile, die man wiederkehrend sinnvoll zusammenbaut. Auch des Raumschiff und die Items, evt. Gegner werden so gebaut und können dann ja automatisch mehrfarbig und deutlich detailgerechter erstellt werden. Für das Raumschiff und die Missiles programmiert man eine eigene Kollisionserkennung (einfach den Bildschirmspeicher um das Raumschiff auslesen).
Den Bildschirm scrollt man indem man einfach die Startadresse des Bildschirmes verschiebt, das hätte den Vorteil, das eine Animation am Ort des Speichers ablaufen kann (außer die bewegenden Teile - die muss man dann im Speicher verschieben).
Wie ist denn Eure Erfahrung so und sind meine Gedanken falsch und gehen in eine Sackgasse?? Oder befinde ich mich aktuell eher in einer Sackgasse (was sich gerade so anfühlt)?
Grüße
Peter


